/*******************************************************************************
 * Copyright (c) 2000, 2006 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 * 
 * Author:
 *     coolair.loveU2@gmail.com
 *******************************************************************************/

package org.skyfree.ghyll.tcard.core;

import java.util.Date;

/**
 * ITProjectDescription contain the meta information for one project.
 */

public interface ITProjectDescription extends ITResource
{
	/**
	 * Returns the name of the described project.
	 * @return the name of the described project
	 */
	String getName();
	
	/**
	 * Returns the descriptive comment for the described project.
	 * @return the comment for the described project
	 */
	String getComment();
	
	/**
	 * Set the comment.
	 * @param comment
	 */
	void setComment(String comment);
	
	/**
	 * Returns the unique ID of contract associated with the described project.
	 * @return the unique ID of contract associated with the described project
	 */
	String getContractID();
	
	/**
	 * Set the contract ID
	 * @param contractID
	 */
	void setContractID(String contractID);
	
	/**
	 * Returns the date time when the described project is created. And the date 
	 * time can't be changed after being created.
	 * @return the date time when the described project is created
	 */
	Date getCreateDate();
	
	/**
	 * Set the status.
	 * @param status
	 * @see ITProject#STATUA_CLOSE
	 * @see ITProject#STATUA_OPEN
	 */
	void setStatus(String status);
	
	/**
	 * Returns the status of the project.
	 * @return the status of the project
	 */
	String getStatus();
	
	/**
	 * Set the create date.
	 * @param date
	 */
	void setCreateDate(Date date);
	
	/**
	 * Set the project name.
	 * @param name
	 */
	void setName(String name);
	
}
